package com.rem.chat.service;

import com.rem.chat.pojo.request.SendMessageRequest;
import com.rem.chat.pojo.response.SendMessageResponse;
import com.rem.chat.service.dto.UserLoginDTO;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

/**
 * @author: Themberfue
 * @date: 2025/6/21 16:03
 * @description:
 */
public interface ChatService {
    /**
     * 发送消息
     * @param param 发送消息信息
     * @param user 用户信息
     * @return 发送消息响应
     */
    SendMessageResponse sendMessage(SendMessageRequest param, UserLoginDTO user);

    /**
     * 上传文件
     * @param userId 用户id
     * @param messageId 消息id
     * @param file 文件
     * @param cover 文件缩略
     * @return 是否上传成功
     */
    Boolean uploadFile(String userId, Integer messageId, MultipartFile file, MultipartFile cover) throws IOException;

    /**
     * 下载文件
     * @param user 用户信息
     * @param fileId 文件id（消息id）
     * @param showCover 是否展示缩略图
     * @return 下载的文件
     */
    File downloadFile(UserLoginDTO user, String fileId, Boolean showCover);
}
